package org.example.spring.ioc.factory;

import org.example.spring.ioc.bean.Car;
import org.springframework.beans.factory.FactoryBean;
import org.springframework.stereotype.Component;
/*
*使用场景：制造某些对象比较复杂的对象，或者对象创建比较耗时，使用工厂类来创建对象
*/

@Component
public class BYDFactory implements FactoryBean<Car> {
    /*
    * 调用此方法给容器中制造对象
    */
    @Override
    public Car getObject() throws Exception {
        Car car = new Car();
        System.out.println("比亚迪工厂正在制造汽车");
        return car;
    }

    /*
    * 返回对象类型
    */
    @Override
    public Class<?> getObjectType() {
        return Car.class;
    }

    /*
    * 是否单例
    * true:单例
    * false:非单例
    */
    @Override
    public boolean isSingleton() {
        return FactoryBean.super.isSingleton();
    }
}
